In a perfect world, software would work perfectly. Unfortunately...
well, you know the drill.
Since GCC 4.2 is upcoming, our resident GCC guy
doko asked me to find someone
to have a look at updating the Debian patches for GCC 4.1 so that they'd
apply. Since I need to learn about GCC anyway for the
Debian/ColdFire
project (which nobody seems to be working on except for me), I started
looking into it myself. The procedure is simple enough: uncomment lines
in
debian/rules.patch, and fix those m68k-specific patches that
break.
The first one was easy.
debian/patches/m68k-gc.dpatch has
been integrated upstream, so is no longer necessary.
The second one was slightly more involved. But only
slightly
so; the patch tried to change
libffi/src/m68k/sysv.S, which had
received some three extra lines that conditionally add a
.note.GNU-stack section. These three lines weren't there at
first; but the
.S file was otherwise entirely unchanged, so
fixing this was rather easy.
The next one is, uh, pretty hard.
gcc/config/m68k/m68k.md is
a file of 7k LOC in the GCC-specific "RTL" pseudo-assembly language,
which I'm not at all familiar with. Yet, anyway. As a bonus, the first
hunk in this file which fails to apply does so because that bit of this
code has been changed rather significantly from GCC 4.1 to 4.2.
Meaning:
- I need to figure out how this RTL code works
- I need to figure out what this particular RTL code block does
- I need to figure out what the point of this particular patch
was
- I need to figure out how to write a patch (in RTL) which
semantically does the same thing as what the original patch was doing.
Without breaking the changes between 4.1 and 4.2
Wish me luck. At least the first two parts are almost finished;
after skimming through chapters 12 and 14 of
gccint.info, this
hugging code almost makes
sense to me.
(oh, and if that last link doesn't make any sense to you, ask
me for my fortune file at debconf)
(which is in less than a month! whee! excitement!)